6c9fc7dac6c150b27989c5f4044ebd1df7c6e83e,h2o-core/src/main/java/water/rapids/ASTStrOp.java,ASTToUpper,toUpperStringCol,#Vec#,207
Before Change
return new ValFrame(res);
}
private Frame toUpperStringCol(Vec vec) {
Frame f = new MRTask() {
@Override public void map(Chunk chk, NewChunk newChk){
if ( chk instanceof C0DChunk ) // all NAs
for (int i = 0; i < chk.len(); i++)
newChk.addNA();
else if (((CStrChunk)chk)._isAllASCII) { // fast-path operations
((CStrChunk) chk).asciiToUpper(newChk);
} else { //UTF requires Java string methods for accuracy
BufferedString tmpStr = new BufferedString();
for(int i =0; i < chk._len; i++) {
if (chk.isNA(i))
newChk.addNA();
else // Locale.ENGLISH to give the correct results for local insensitive strings
newChk.addStr(chk.atStr(tmpStr, i).toString().toUpperCase(Locale.ENGLISH));
}
}
}
}.doAll(1, vec).outputFrame();
return f;
}
}
After Change
}
private Vec toUpperStringCol(Vec vec) {
return new MRTask() {
@Override public void map(Chunk chk, NewChunk newChk){
if ( chk instanceof C0DChunk ) // all NAs
for (int i = 0; i < chk.len(); i++)
newChk.addNA();
else if (((CStrChunk)chk)._isAllASCII) { // fast-path operations
((CStrChunk) chk).asciiToUpper(newChk);
} else { //UTF requires Java string methods for accuracy
BufferedString tmpStr = new BufferedString();
for(int i =0; i < chk._len; i++) {
if (chk.isNA(i))
newChk.addNA();
else // Locale.ENGLISH to give the correct results for local insensitive strings
newChk.addStr(chk.atStr(tmpStr, i).toString().toUpperCase(Locale.ENGLISH));
}
}
}
}.doAll(1, vec).outputFrame().anyVec();
}
}